﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SistemaCenterQuimPost.Plantillas;


namespace SistemaCenterQuimCentral.UI.CentralAdministrador
{
    public partial class frmMenuAdministradorCentral : SistemaCenterQuimPost.Plantillas.frmPlantillaPadre
    {
        //-----------ATRIBUTOS----------------


        //----------CONSTRUCTORES-----------------
        public frmMenuAdministradorCentral()
        {
            InitializeComponent();
        }

        //----------ESTADOS---------------------

        //-----------METODOS VARIOS-------------------

        //desactiva el menú una vez que detecta que un frmHijo se encuentra activo, y se deshanilita en otro caso
        private void HabilitarDesactivarMenu(object sender, EventArgs e) //Evento MdiChilActive. Activa o desactiva el menu, según existan o no ventanas hijas activas.
        {
            /*if (this.ActiveMdiChild == null)
            {
                menuStripAdm.Enabled = true;
            }
            else
            {
                menuStripAdm.Enabled = false;
            }*/
        }

        public void setTxtMenu() //establece el menu cuando un usuario ingresa.
        {
            this.Text = "Sistema CenterQuim Central - Sesión: " + this.getNombreUsuario() + " [Administrador]";
        }

        private void usuariosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmUsuarios"))
            {
                frmUsuarios unFrmUsuario = new frmUsuarios();
                unFrmUsuario.MdiParent = this;
                unFrmUsuario.Show();

            }
            else
            {
                mandarAlFrenteFormulario("frmUsuarios");
            }
        }


        private void proveedoresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionProveedoresA"))
            {
                frmGestionProveedoresA unFrmGestionProveedoresA = new frmGestionProveedoresA();
                unFrmGestionProveedoresA.MdiParent = this;
                unFrmGestionProveedoresA.Show();

            }
            else
            {
                mandarAlFrenteFormulario("frmGestionProveedoresA");
            }
        }

        private void gestionDeClientesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionClientesA"))
            {
                frmGestionClientesA unFrmGestionClientesA = new frmGestionClientesA();
                if (unFrmGestionClientesA.AccesoInternet())
                {
                    unFrmGestionClientesA.MdiParent = this;
                    unFrmGestionClientesA.Show();

                }
                else
                {
                    if (!unFrmGestionClientesA.AccesoInternet())
                    {
                        MessageBox.Show("Esta operación necesita conexión a internet.", "INFORME", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }
            }else
            {
                mandarAlFrenteFormulario("frmGestionClientesA");
            }
        }

        private void verMovimientosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmMovimientosClientesCentral"))
            {
                frmMovimientosClientesCentral unFrmMovimientosClientesCentral = new frmMovimientosClientesCentral();
                if (unFrmMovimientosClientesCentral.AccesoInternet())
                {
                    unFrmMovimientosClientesCentral.MdiParent = this;
                    unFrmMovimientosClientesCentral.Show();

                }
                else
                {
                    if (!unFrmMovimientosClientesCentral.AccesoInternet())
                    {
                        MessageBox.Show("Esta operación necesita conexión a internet.", "INFORME", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }
            }else
            {
                mandarAlFrenteFormulario("frmMovimientosClientesCentral");
            }
        }

        private void gestionDeProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmGestionProductoCentralA"))
            {
                frmGestionProductoCentralA unFrmGestionProductoCentralA = new frmGestionProductoCentralA();
                unFrmGestionProductoCentralA.MdiParent = this;
                unFrmGestionProductoCentralA.Show();
            }else
            {
                mandarAlFrenteFormulario("frmGestionProductoCentralA");
            }
        }

        private void movimientosDelProductoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmMovimientosProductoCentral"))
            {
                frmMovimientosProductoCentral unFrmMovimientosProductoCentral = new frmMovimientosProductoCentral();
                unFrmMovimientosProductoCentral.MdiParent = this;
                unFrmMovimientosProductoCentral.Show();
            }else
            {
                mandarAlFrenteFormulario("frmMovimientosProductoCentral");
            }
        }

        private void emitirRegistrosDeProductosAPostToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmEnviarRegistrosProductos unFrmEnviarRegistrosProductos = new frmEnviarRegistrosProductos();
            unFrmEnviarRegistrosProductos.MdiParent = this;
            unFrmEnviarRegistrosProductos.Show();
        }


        private void auditarProductosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmAuditarProductosCentral"))
            {
                frmAuditarProductosCentral unFrmAuditarProductosCentral = new frmAuditarProductosCentral();
                unFrmAuditarProductosCentral.MdiParent = this;
                unFrmAuditarProductosCentral.Show();
            }else
            {
                mandarAlFrenteFormulario("frmAuditarProductosCentral");
            }
        }

        private void actualizarPreciosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (noEstaAbierto("frmActualizarPreciosCentral"))
            {
                frmActualizarPreciosCentral unFrmActualizarPreciosCentral = new frmActualizarPreciosCentral();
                unFrmActualizarPreciosCentral.MdiParent = this;
                unFrmActualizarPreciosCentral.Show();
            }else
            {
                mandarAlFrenteFormulario("frmActualizarPreciosCentral");
            }
        }


        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }



        protected override void frmPlantillaPadre_FormClosing(object sender, FormClosingEventArgs e) //captura el evento que se emite cuando el usuario cierra el formulario (apreta en la "x") de la ventana, justamentemente antes.
        {
            DialogResult result = MessageBox.Show("¿Desea salir del Sistema CenterQuim Central?", "CONFIRMACION DE CIERRE", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.No)
            {
                e.Cancel = true;    //si responde no, cancela el evento de cierre del formulario.
            }
        }

        private bool noEstaAbierto(string unFormulario)  //verifica que el formulario ya no esté abierto, si está abierto devuelve false, sino true;
        {
            bool noabierto = true;
        

            foreach (Form unHijo in this.MdiChildren)
            {
                if (unHijo.Name == unFormulario)
                {
                    noabierto = false;
                }
            }

            return noabierto;
        }

        private void mandarAlFrenteFormulario(string unFormulario) //envia al frente a un formulario secundario no activo.
        {
            foreach (Form unHijo in this.MdiChildren)
            {
                if (unHijo.Name == unFormulario)
                {
                    unHijo.BringToFront();
                    break;
                }
            }
        }

        

        

        
    }
}
